#ifndef LRCPAGE_H
#define LRCPAGE_H

#include <QWidget>
#include <QPropertyAnimation>

namespace Ui {
class LrcPage;
}

// 存储一行歌词的信息
struct lrcWordLine
{
    lrcWordLine(qint64 time, const QString& lineText)
    {
        _time = time;
        _lineText = lineText;
    }
    qint64 _time;  // 播放这个歌词的时间，单位：ms
    QString _lineText;  // 当前播放的歌词
};

class LrcPage : public QWidget
{
    Q_OBJECT

public:
    explicit LrcPage(QWidget *parent = nullptr);
    ~LrcPage();
    // 解析歌词文件
    bool parseLrcFile(const QString& lrcPath);
    // 同步当前的歌词进度
    void showLrcWordLine(qint64 time);
    // 计算当前歌词的下标
    int getLrcWordLineIndex(qint64 time);
    // 设置lrc界面的歌曲名称和歌手名称
    void setMusicName(const QString& musicName);
    void setMusicSinger(const QString& musicSinger);

private slots:
    // 点击下拉按钮，收掉歌词lrc页面
    void on_hideButton_clicked();

private:
    Ui::LrcPage *ui;

    QPropertyAnimation* animation;
    // 存储所有的歌词，按时间顺序
    QVector<lrcWordLine> lrcWordList;
};

#endif // LRCPAGE_H
